package com.tm.utils.freemark;

import java.io.File;
import java.io.StringWriter;
import java.io.Writer;
import java.util.HashMap;
import java.util.Map;
import freemarker.template.Configuration;
import freemarker.template.Template;

/**
 * <b>类名称：</b>FreemarkUtil <br/>
 * <b>类描述：</b><br/>
 * <b>创建人：</b>zhanghj<br/>
 * <b>修改人：</b><br/>
 * <b>修改时间：</b>2015年11月10日 下午1:22:01<br/>
 * <b>修改备注：</b><br/>
 * <b>版本信息：</b>v1.0.0<br/>
 */

public class FreemarkUtil {
	/**
	 * 
	 * @Title processTemplate
	 * @Description 处理模板获取字符串
	 * @param params
	 * @param templateName
	 * @return 
	 * String 
	 * @author zhanghj
	 * @date 2015年11月10日-下午1:23:57
	 * @update 
	 * @throws
	 */
	public static  String processTemplate(Map params,String templateName){
		StringWriter sw;
		try {
			Configuration ftlCfg=new Configuration();
			//处理模板所在路径
			String classPath=Thread.currentThread().getContextClassLoader().getResource("").getFile();
			ftlCfg.setDirectoryForTemplateLoading(new File(classPath,"template/page"));
			sw = new StringWriter();
			Template templatePO=ftlCfg.getTemplate(templateName,"utf-8");
			templatePO.process(params, sw);
			return sw.toString();
		} catch (Exception e) {
			e.printStackTrace();
			return null;
		}
	}
	/**
	 * 
	 * @Title processTemplate
	 * @Description 处理模板获取字符串
	 * @param params
	 * @param templateName
	 * @return 
	 * String 
	 * @author zhanghj
	 * @date 2015年11月10日-下午1:23:57
	 * @update 
	 * @throws
	 */
	public static  String processTemplate(Map params,String filePath,String templateName){
		StringWriter sw;
		try {
			Configuration ftlCfg=new Configuration();
			//处理模板所在路径
			String classPath=Thread.currentThread().getContextClassLoader().getResource("").getFile();
			ftlCfg.setDirectoryForTemplateLoading(new File(classPath,filePath));
			sw = new StringWriter();
			Template templatePO=ftlCfg.getTemplate(templateName,"utf-8");
			templatePO.process(params, sw);
			return sw.toString();
		} catch (Exception e) {
			e.printStackTrace();
			return null;
		}
	}
	/**
	 * 商品导出word使用
	 * @Title processTemplate
	 * @Description TODO
	 * @param params
	 * @param filePath
	 * @param templateName
	 * @param out
	 * @return 
	 * String 
	 * @author jiayu
	 * @date 2015年12月31日-上午11:20:02
	 * @update 
	 * @throws
	 */
	public static  String processTemplate(Map params,String filePath,String templateName, Writer out){
		StringWriter sw;
		try {
			Configuration ftlCfg=new Configuration();
			//处理模板所在路径
			String classPath=Thread.currentThread().getContextClassLoader().getResource("").getFile();
			ftlCfg.setDirectoryForTemplateLoading(new File(classPath,filePath));
//			sw = new StringWriter();
			Template templatePO=ftlCfg.getTemplate(templateName,"utf-8");
			templatePO.process(params, out);
			return out.toString();
		} catch (Exception e) {
			e.printStackTrace();
			return null;
		}
	}
	public static void main(String[] args) {
		Map templateMap=new HashMap();
		templateMap.put("name", "姓名");
		templateMap.put("value", "zhangsan");//对应转换
		String classPath=Thread.currentThread().getContextClassLoader().getResource("").getFile();
		System.out.println(processTemplate(templateMap,"item.ftl"));
		System.out.println(classPath);
	}
}
